估计是一次终生难忘的Rust面试

427 人赞同了该文章

面试官很强, 也很有耐心, 整场下来学习到很多东西。

  1. 闲聊环节
  2. 笔试题: 线程池 (基本的逻辑 + 能理解 Trait Object, Dynamic Dispatch)
    我刚开始的思路用 channel 做, 踩了静态分发的坑, ?sized 让我IDE一直红, 心态小崩。
    还是对泛型和 Trait Object 理解不深, 平时养成了"能用就行"的习惯, 没有考虑泛化,抽象。
  3. 面试官讲解: Async Rust(Tokio)里的task以及 spawn() 做抽象的思路,
    和笔试题里面 pub trait Job: 'static + Send + FnOnce() {} 类似。
  4. LSM-Tree 项目中有用到线程池吗?
  5. LSM-Tree项目中 哪些环节 可以用后台线程池提高并发度?
  6. LSM-Tree项目中的 Batch优化 怎么做的? 刷盘的时机是怎么选的?
  7. 如果我对在同一个Batch里面对同一个key进行 putdel(),会抵消吗?
  8. LSM-Tree项目中写文件(磁盘)有优化吗?
  9. Compaction 过程如何提高并发度?
  10. 多个线程同时做Compaction会不会压缩到同样的文件造成冲突?

反问环节

  1. 一个优秀的Rust工程师该有的技术栈/技能资质
    (面试官:最基本的还是一个开发所需要具备的技能, 不拘泥于语言)
    ①语言基础: 官方书籍涵盖了很多主题了, 完整看下来就基础了。
    ②工程方面: 对技术有兴趣,某个点肯深入钻研,然后得动手自己多去试。
  2. 面试下来, 我可以提高的点
    ①并发编程可以提高,多开阔视野些。面试官讲的思路:
    比如要拓展LSM-Tree项目, 可以增加对 Redis协议 的支持和Async异步调用方法。
    做成一个K-v Server, 另外可以把数据底座迁移到 OSS对象存储 上, 做成一个对外服务。
    ②自己要有技术沉淀,比如线程池有些crates实现了,有些就几百行,可以多学多看。
    然后自己一定要多动手写。(ps: 我自己还是写的太少了, 哎!)
  3. 问面试官每天学习新技术的情况/动机
    基于业务/场景挑战会学新知识, 然后每天用到的库会去看源码。
    其余时间: 写文档(很重要), 写代码, review代码.

意料之外 的环节:

面试官插问: 之前看你的Github账号有给我们项目提过一个PR,对吧?

我: 您怎么知道的? (ps:我当时在大三上的期末,懒得复习课内知识, 想找点开源项目玩

就看到这个项目很有意思, 然后几天之内试着提了一个PR, 里面的mentor给了我反馈意见,

但我考完试之后 回家就想着玩去了, 这个PR最后没合进去。我当时已经蚌埠住了...)

面试官: 我看了你的Github账号, 我们这边有历史记录的哈, 后面怎么没继续推进下去呢?

我: (⊙﹏⊙), 我感觉我重构的那部分对我来说还是有点复杂, 想多沉淀下再来挑战。

面试官: 你如果遇到问题可以直接跟我们交流的, 会有人及时应答的。

我: 好的.. [ 惨痛教训:以后玩开源提PR, 要有 慎重如始 的意识, 不要半途跑路了...]

发布于 2024-05-27 21:19・浙江面试阿里千问AI,办公提效小助手

[

基于Qwen大模型,千问PC端适配多场景,支持文档处理、翻译、PPT生成等。多窗口同步操作,智能升级无门槛,工...

](https://www.qianwen.com/?ch=webtongyi@gp_zhztzhihugpwebty01_normal2_35&cb=https%3A%2F%2Fsugar.zhihu.com%2Fplutus_adreaper_callback%3Fsi%3Dc064ef60-184c-4550-b9b7-f6ac8be6237e%26os%3D3%26zid%3D1629%26zaid%3D3737692%26zcid%3D3725443%26cid%3D3725443%26event%3D__EVENTTYPE__%26value%3D__EVENTVALUE__%26ts%3D__TIMESTAMP__%26cts%3D__TS__%26mh%3D245b8a85fbdc6d02d10778e960fa3d33%26adv%3D755269%26ocg%3D1%26cp%3D1500%26ocs%3D1%26aic%3D0%26atp%3D0%26ct%3D2%26ed%3DGiBNJgVzfCMmUW9XFyEvRA8xBGxJICwkOhh0FlwxKw1fY0gnWzUoISkYY0FAPSBRDHgLbEkuNjNzFXQSRDkoDVpyD3kLe2N4fhdgXwRmegZNKlcvUSdncGhJJ1oAYHQFWnEAeApSwxMiVsbkcw%3D%3D&ua=Mozilla%2F5.0+(Windows+NT+10.0%3B+Win64%3B+x64)+AppleWebKit%2F537.36+(KHTML%2C+like+Gecko)+Chrome%2F148.0.0.0+Safari%2F537.36&os=3&campaignId=2736418&adgroupId=3737692&creativeId=3725443&accountId=755269&ip=125.114.123.233&ipv6=125.114.123.233&from=zhihu&spu=biz%3D0%26ci%3D3725443%26si%3D194b09a7-8b50-4f09-89f8-9fe3bad274d5%26ts%3D1779451222%26zid%3D1629)